package com.hx.dc.util;


import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * Created by lin on 2019/3/3.
 */
public class FileUploadUtil {
/*
	 * 1。读取配置文件的信息，后边可保存文件到该目录下
	 * 2。生成新的唯一文件名
	 * 3。根据MultipartFile类型的对象保存相关的文件到指定的目录
	 * 4。保存成功后需要返回新的文件名（甚至相关目录地址）
	 */

    //String path = "E:\\testupload";

    // @Value("#{uploadProperties.path}")
    //private String path;
    //联系方式.txt   fdsafdsafdsafdsa.txt

    //获取扩展名
    public static String getExtName(MultipartFile file){
        //获取原文件名
        String fileName = file.getOriginalFilename();
        //获取扩展名
        String extName = FilenameUtils.getExtension(fileName);
        return extName;
    }
    //再写一个生成文件文件的方法，例如可以根据当前的日期生成文件夹，再把当天文件存到该文件夹下，自己 完成

    public static String createNewName(MultipartFile file){
        //生成唯一的字符串，可作为文件名
        String uuid = UUID.randomUUID().toString();
        String newName = uuid+"."+getExtName(file);
        return newName;
    }
    //返回newName
    public static String saveFile(MultipartFile file,String path){
        String newName = createNewName(file);
        String savedPath = path+"/"+newName;
        try {

            FileUtils.copyInputStreamToFile(file.getInputStream(), new File(savedPath));//E:\\testupload\fdsafdasf.txt
            return newName;
            // 商品图片//url  /ddd/order2.jpg
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    //返回完整路径
    public static String saveFile2(MultipartFile file,String path){
        String newName = createNewName(file);
        String savedPath = path+"/"+newName;
        try {

            FileUtils.copyInputStreamToFile(file.getInputStream(), new File(savedPath));//E:\\testupload\fdsafdasf.txt
            return newName;
            // 商品图片//url  /ddd/order2.jpg
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
}
